//Accepted
#include <cstdio>

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int dif, meio;
int t, n, c, i, cc, l, r, inicio, fim;

vector<int> pos;


int cabe(){
	for(l=0, r=1, cc=c-1,i=n-1;(cc<=i && cc)&&i;i--,r++)
		if(pos[r]-pos[l] >= meio){
			cc--;
			l=r;
		}
	if(cc==0)return 1;
	return 0;
}

void process(){
	scanf("%d %d", &n, &c);
	pos.clear();
	for(i=0;i<n;i++){
		scanf("%d", &r);
		pos.push_back(r);
	}
	sort(pos.begin(), pos.end());
	
	inicio=pos[0];
	fim=pos[n-1]+1;
	dif=0;
	
	meio=(inicio+fim)/2 - pos[0];
	while(meio!=dif){
		dif=meio;
		if(cabe())inicio=meio+pos[0];
		else fim=meio+pos[0];
		
		meio=(inicio+fim)/2 - pos[0];
		//printf("%d %d %d\n",inicio, fim, meio);
	}
	printf("%d\n",dif);
}
int main(){
	scanf("%d", &t);
	while(t--){
		process();
	}
return 0;
}


